package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.TSCFinalCost;
import com.shrcl.engineerprocess.domain.TSCManCostCalcItem;
import com.shrcl.engineerprocess.domain.impl.TSCManCostCalcImpl;
import com.shrcl.engineerprocess.domain.proxy.TSCManCostCalcProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import edu.fudan.mylang.pf.INamedModelObject;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = TSCManCostCalcImpl.class)
public interface TSCManCostCalc extends IModelObject, INamedModelObject {
  public abstract Collection<TSCManCostCalcItem> getManCostCalcItem();
  
  public abstract TSCManCostCalcItem createAndAddtoManCostCalcItem();
  
  public abstract TSCManCostCalcItem createAndAddtoManCostCalcItem(final Procedure1<TSCManCostCalcItem> updater);
  
  public abstract TSCManCostCalc removeFromManCostCalcItem(final TSCManCostCalcItem tSCManCostCalcItem);
  
  public abstract TSCManCostCalc removeAllManCostCalcItem();
  
  public abstract String getName();
  
  public abstract TSCManCostCalc setName(final String name);
  
  public abstract Collection<TSCFinalCost> getFinalCostEst();
  
  public abstract TSCFinalCost createAndAddtoFinalCostEst();
  
  public abstract TSCFinalCost createAndAddtoFinalCostEst(final Procedure1<TSCFinalCost> updater);
  
  public abstract TSCManCostCalc removeFromFinalCostEst(final TSCFinalCost tSCFinalCost);
  
  public abstract TSCManCostCalc removeAllFinalCostEst();
  
  public abstract String getEntityName();
  
  public abstract void addCostEst(final Procedure1<? super TSCFinalCost> init);
  
  public abstract void init();
  
  public abstract TSCManCostCalcProxy toProxy();
}
